using System.Threading.Tasks;
using RPG.Infrastructure.Core;

namespace RPG.Infrastructure.Persistence
{
    public interface IRepository<TAggregate, TId> where TAggregate : AggregateRoot<TId>
    {
        Task<TAggregate> GetByIdAsync(TId id);
        Task SaveAsync(TAggregate aggregate);
        Task DeleteAsync(TId id);
    }
}
